home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / language / sysmac.sml < prev    next >
Text File  |  1995-04-22  |  20KB  |  780 lines

  1. ;<HESS.ATARI>SYSMAC.SML.27  8-Mar-82 08:39:38, Edit by HESS
  2.  
  3. ;6502 SYSTEM -*-MACRO-*- DEFINITIONS
  4.  
  5. ; ***** ATARI SYSTEM DEFS *****
  6.  
  7. .MACRO    ATARI
  8.  
  9. ;    VECTOR TABLE
  10.  
  11. EDITRV    =$E400            ;EDITOR
  12. SCRENV    =$E410            ;TELEVISION SCREEN
  13. KEYBDV    =$E420            ;KEYBOARD
  14. PRINTV    =$E430            ;PRINTER
  15. CASETV    =$E440            ;CASSETTE
  16.  
  17. ;    JUMP VECTOR TABLE
  18.  
  19. DISKIV    =$E450            ;DISK INITIALIZATION
  20. DSKINV    =$E453            ;DISK INTERFACE
  21. CIOV    =$E456            ;CIO ROUTINE
  22. SIOV    =$E459            ;SIO ROUTINE
  23. SETVBV    =$E45C            ;SET VERTICAL BLANK VECTORS
  24. SYSVBV    =$E45F            ;SYSTEM VERTICAL BLANK ROUTINE
  25. XITVBV    =$E462            ;EXIT VERTICAL BLANK ROUTINE
  26. SIOINV    =$E465            ;SIO INIT
  27. SENDEV    =$E468            ;SEND ENABLE ROUTINE
  28. INTINV    =$E46B            ;INTERRUPT HANDLER INIT
  29. CIOINV    =$E46E            ;CIO INIT
  30. BLKBDV    =$E471            ;BLACKBOARD MODE
  31. WARMSV    =$E474            ;WARM START ENTRY POINT
  32. COLDSV    =$E477            ;COLD START ENTRY POINT
  33. RBLOKV    =$E47D            ;CASSETTE READ BLOCK VECTOR
  34. DSOPIV    =$E480            ;CASSETTE OPEN FOR INPUT VECTOR
  35.  
  36. ;    SOME USEFUL INTERNAL ROUTINES
  37.  
  38. KGETCH    =$F6E2            ;GET CHAR FROM KEYBOARD
  39. EOUTCH    =$F6A4            ;OUTPUT CHAR TO SCREEN
  40. PUTLIN    =$F385            ;OUTPUT LINE TO IOCB#0
  41.  
  42. ;    COMMAND CODES FOR IOCB
  43.  
  44. OPEN    =$03            ;OPEN FOR INPUT/OUTPUT
  45. GETREC    =$05            ;GET RECORD (TEXT)
  46. GETCHR    =$07            ;GET CHARACTER(S)
  47. PUTREC    =$09            ;PUT RECORD (TEXT)
  48. PUTCHR    =$0B            ;PUT CHARACTER(S)
  49. CLOSE    =$0C            ;CLOSE DEVICE
  50. STATIS    =$0D            ;STATUS REQUEST
  51. SPECIL    =$0E            ;SPECIAL ENTRY COMMANDS
  52.  
  53. ;    SPECIAL ENTRY COMMANDS
  54.  
  55. DRAWLN    =$11            ;DRAW LINE
  56. FILLIN    =$12            ;DRAW LINE WITH RIGHT FILL
  57. RENAME    =$20            ;RENAME DISK FILE
  58. DELETE    =$21            ;DELETE DISK FILE
  59. FORMAT    =$22            ;FORMAT DISK
  60. LOCKFL    =$23            ;LOCK FILE (READ ONLY)
  61. UNLOCK    =$24            ;UNLOCK FILE
  62. POINT    =$25            ;POINT SECTOR
  63. NOTE    =$26            ;NOTE SECTOR
  64.  
  65. CCIO    =$28            ;CONCURRENT I/O MODE
  66.  
  67. IOCFRE    =$FF            ;IOCB "FREE"
  68.  
  69. ;    AUX1 VALUES FOR OPEN
  70.  
  71. APPEND    =$01            ;OPEN FOR APPEND
  72. DIRECT    =$02            ;OPEN FOR DIRECTORY ACCESS
  73. OPNIN    =$04            ;OPEN FOR INPUT
  74. OPNOT    =$08            ;OPEN FOR OUTPUT
  75. OPNINO    =OPNIN!OPNOT        ;OPEN FOR INPUT/OUTPUT
  76. MXDMOD    =$10            ;OPEN FOR MIXED MODE
  77. INSCLR    =$20            ;OPEN WITHOUT CLEARING SCREEN
  78.  
  79. ; OS STATUS CODES
  80.  
  81. SUCCES    =$01            ;SUCCESSFUL OPERATION
  82. BRKABT    =$80            ;(128) BREAK KEY ABORT
  83. PRVOPN    =$81            ;(129) IOCB ALREADY OPEN
  84. NONDEV    =$82            ;(130) NON-EX DEVICE
  85. WRONLY    =$83            ;(131) IOCB OPENED FOR WRITE ONLY
  86. NVALID    =$84            ;(132) INVALID COMMAND
  87. NOTOPN    =$85            ;(133) DEVICE OR FILE NOT OPEN
  88. BADIOC    =$86            ;(134) INVALID IOCB NUMBER
  89. RDONLY    =$87            ;(135) IOCB OPENED FOR READ ONLY
  90. EOFERR    =$88            ;(136) END OF FILE
  91. TRNRCD    =$89            ;(137) TRUNCATED RECORD
  92. TIMOUT    =$8A            ;(138) DEVICE TIMEOUT
  93. DNACK    =$8B            ;(139) DEVICE DOES NOT ACK COMMAND
  94. FRMERR    =$8C            ;(140) SERIAL BUS FRAMING ERROR
  95. CRSROR    =$8D            ;(141) CURSOR OUT OF RANGE
  96. OVRRUN    =$8E            ;(142) SERIAL BUS DATA OVERRUN
  97. CHKERR    =$8F            ;(143) SERIAL BUS CHECKSUM ERROR
  98. DERROR    =$90            ;(144) DEVICE ERROR (OPERATION INCOMPLETE)
  99. BADMOD    =$91            ;(145) BAD SCREEN MODE NUMBER
  100. FNCNOT    =$92            ;(146) FUNCTION NOT IN HANDLER
  101. SCRMEM    =$93            ;(147) INSUFFICIENT MEMORY FOR SCREEN MODE
  102.  
  103. ;    PAGE 0 LOCATIONS
  104.  
  105. LINZBS    =$00            ;LINBUG STORAGE
  106.  
  107. ;  THESE LOCS ARE NOT CLEARED
  108.  
  109. CASINI    =$02            ;CASSETTE INIT LOC
  110. RAMLO    =$04            ;RAM POINTER FOR MEM TEST
  111. TRAMSZ    =$06            ;TEMP LOC FOR RAM SIZE
  112. TSTDAT    =$07            ;RAM TEST DATA LOC
  113.  
  114. ;  CLEARED ON COLDSTART ONLY
  115.  
  116. WARMST    =$08            ;WARM START FLAG
  117. BOOTQ    =$09            ;SUCCESSFUL BOOT FLAG
  118. DOSVEC    =$0A            ;DOS START VECTOR
  119. DOSINI    =$0C            ;DOS INIT ADDRESS
  120. APPMHI    =$0E            ;APPLICATION MEM HI LIMIT
  121.  
  122. ;  CLEARED ON COLD OR WARM START
  123.  
  124. INTZBS    =$10            ; START OF OS RAM CLEAR LOC => $7F
  125. POKMSK    =$10    ⑨    ;SYSTEM MASK FOR POKEY IRQ ENABLE
  126. BRKKEY    =$11            ;BREAK KEY FLAG
  127. RTCLOK    =$12            ;REAL TIME CLOCK (60HZ OR 16.66666 MS)
  128. BUFADR    =$15            ;INDIRECT BUFFER ADDRESS REG
  129. ICCOMT    =$17            ;COMMAND FOR VECTOR HANDLER
  130. DSKFMS    =$18            ;DISK FILE MANAGER POINTER
  131. DSKUTL    =$1A            ;DISK UTILITIES POINTER
  132. PTIMOT    =$1C            ;PRINTER TIME OUT REGISTER
  133. PBPNT    =$1D            ;PRINT BUFFER POINTER
  134. PBUFSZ    =$1E            ;PRINT BUFFER SIZE
  135. PTEMP    =$1F            ;TEMP REG
  136.  
  137. ZIOCB    =$20            ;PAGE 0 I/O CONTROL BLOCK
  138. IOCBSZ    =16            ;NUMBER OF BYTES / IOCB
  139. MAXIOC    =8*IOCBSZ        ;LENGTH OF IOCB AREA
  140. IOCBAS    =ZIOCB
  141.  
  142. ICHIDZ    =$20            ;HANDLER INDEX NUMBER ($FF := IOCB FREE)
  143. ICDNOZ    =$21            ;DEVICE NUMBER (DRIVE NUMBER)
  144. ICCOMZ    =$22            ;COMMAND CODE
  145. ICSTAZ    =$23            ;STATUS OF LAST IOCB ACTION
  146. ICBALZ    =$24            ;BUFFER ADDRESS (LOW)
  147. ICBAHZ    =$25            ;  "       "    (HIGH)
  148. ICPTLZ    =$26            ;PUT BYTE ROUTINE ADDRESS - 1
  149. ICPTHZ    =$27
  150. ICBLLZ    =$28            ;BUFFER LENGTH (LOW)
  151. ICBLHZ    =$29            ;  "       "   (HIGH)
  152. ICAX1Z    =$2A            ;AUX INFO
  153. ICAX2Z    =$2B
  154. ICSPRZ    =$2C            ;SPARE BYTES (CIO LOCAL USE)
  155. ICIDNO    =ICSPRZ+2        ;IOCB LUMBER * 16
  156. CIOCHR    =ICSPRZ+3        ;CHARACTER BYTE FOR CURRENT OPERATION
  157.  
  158. STATUS    =$30            ;INTERNAL STATUS STORAGE
  159. CHKSUM    =$31            ;CHECKSUM (SINGLE BYTE SUM WITH CARRY)
  160. BUNRLO    =$32            ;POINTER TO DATA BUFFER (LO BYTE)
  161. BUFRHI    =$33            ;POINTER TO DATA BUFFER (HI BYTE)
  162. BFENLO    =$34            ;NEXT BYTE PAST END OF BUFFER (LO BYTE)
  163. BNENHI    =$35            ;NEXT BYTE PAST END OF BUFFER (HI BYTE)
  164. CRETRY    =$36            ;NUMBER OF COMMAND FRAM RETRIES
  165. DRETRY    =$37⑨        ;NUMBER OF DEVICE RETRIES
  166. BUFRFL    =$38            ;DATA BUFFER FULL FLAG
  167. RECVDN    =$39            ;RECEIVE DONE FLAG
  168. XMTDON    =$3A            ;XMIT DONE FLAG
  169. CHKSNT    =$3B            ;CHECKSUM SENT FLAG
  170. NOCKSM    =$3C            ;NO CHECKSUM FOLLOWS DATA FLAG
  171.  
  172. BPTR    =$3D            ;BUFFER POINTER (CASSETTE)
  173. FTYPE    =$3E            ;FILE TYPE (SHORT IRG/LONG IRG)
  174. FEOF    =$3F            ;END OF FILE FLAG (CASSETTE)
  175. FREQ    =$40            ;FREQ COUNTER FOR CONSOLE SPEAKER
  176. SOUNDR    =$41            ;NOISY I/O FLAG. (ZERO IS QUIET)
  177. CRITIC    =$42            ;CRITICAL CODE IF NON-ZERO)
  178.  
  179. FMSZPG    =$43            ;DISK FILE MANAGER SYSTEM STORAGE (7 BYTES)
  180.  
  181. CKEY    =$4A            ;SET WHEN GAME START PRESSED
  182. CASSBT    =$4B            ;CASSETTE BOOT FLAG
  183. DSTAT    =$4C            ;DISPLAY STATUS
  184. ATRACT    =$4D            ;ATTRACT MODE FLAG
  185. DRKMSK    =$4E            ;DARK ATTRACT MASK
  186. COLRSH    =$4F            ;ATTRACT COLOR SHIFTER (XOR'D WITH PLAYFIELD)
  187.  
  188. TMPCHR    =$50            ;TEMP CHAR STORAGE (DISPLAY HANDLER)
  189. HOLD1    =$51            ;TEMP STG (DISPLAY HANDLER)
  190. LMARGN    =$52            ;LEFT MARGIN
  191. RMARGN    =$53            ;RIGHT MARGIN
  192. ROWCRS    =$54            ;CURSOR COUNTERS
  193. COLCRS    =$55
  194. DINDEX    =$57            ;DISPLAY INDEX (VARIOUS QUANTS)
  195. SAVMSC    =$58
  196. OLDROW    =$5A            ;PREVIOUS ROW/COL
  197. OLDCOL    =$5B
  198. OLDCHR    =$5D            ;DATA UNDER CURSOR
  199. OLDADR    =$5E
  200. NEWROW    =$60            ;POINT DRAWS TO HERE
  201. NEWCOL    =$61
  202. LOGCOL    =$63            ;POINTS AT COLUMN IN LOGICAL LINE
  203. ADRESS    =$64            ;INDIRECT POINTER
  204. MLTTMP    =$66            ;MULTIPLY TEMP
  205. OPNTMP    =MLTTMP            ;FIRST BYTE IS USED IN OPEN AS TEMP
  206. SAVADR    =$68
  207. RAMTOP    =$6A            ;RAM SIZE DEFINED BY POWER ON LOGIC
  208. BUFCNT    =$6B            ;BUFFER COUNT
  209. BUFSTR    =$6C            ;EDITOR GETCH POINTER
  210. BITMSK    =$6E            ;BIT MASK
  211. SHFAMT    =$6F            ;OUTCHR SHIFT
  212.  
  213. ROWAC    =$70            ;USED BY "DRAW"
  214. COLAC    =$72
  215. ENDPT    =$74
  216. DELTAR    =$76
  217. DELTAC    =$77
  218. ROWINC    =$79
  219. COLINC    =$7A
  220. SWPFLG    =$7B            ;NON-0 IF TXT AND RAM SWAPPED
  221. HOLDCH    =$7C            ;CH BEFORE CNTL & SHFT PROCESSING IN KGETCH
  222. INSDAT    =$7D            ;INSERT CHAR SAVE
  223. COUNTR    =$7E            ;DRAW COUNTER
  224.  
  225. ;;;    $80 TO $FF ARE RESERVED FOR USER APPLICATIONS
  226.  
  227. ;    PAGE 2 LOCATIONS
  228.  
  229. INTABS    =$200            ;INTERRUPT TABLE
  230. VDSLST    =$200            ;DISPLAY LIST NMI VECTOR
  231. VPRCED    =$202            ;PROCEED LINE IRQ VECTOR
  232. VINTER    =$204            ;INTERRUPT LINE IRQ VECTOR
  233. VBREAK    =$206            ;"BRK" VECTOR
  234. VKEYBD    =$208            ;POKEY KEYBOARD IRQ VECTOR
  235. VSERIN    =$20A            ;POKEY SERIAL INPUT READY
  236. VSEROR    =$20C            ;POKEY SERIAL OUTPUT READY
  237. VSEROC    =$20E            ;POKEY SERIAL OUTPUT DONE
  238. VTIMR1    =$210            ;POKEY TIMER 1 IRQ
  239. VTIMR2    =$212            ;POKEY TIMER 2 IRQ
  240. VTIMR4    =$214            ;POKEY TIMER 4 IRQ (DO NOT USE)
  241. VIMIRQ    =$216            ;IMMEDIATE IRQ VECTOR
  242. CDTMV1    =$218            ;COUNT DOWN TIMER 1
  243. CDTMV1    =$21A            ;COUNT DOWN TIMER 2
  244. CDTMV1    =$21C            ;COUNT DOWN TIMER 3
  245. CDTMV1    =$21E            ;COUNT DOWN TIMER 4
  246. CDTMV1    =$220            ;COUNT DOWN TIMER 5
  247. VVBLKI    =$222            ;IMMEDIATE VERTICAL BLANK NMI VECTOR
  248. VVBLKD    =$224            ;DEFERRED VERTICAL BLANK NMI VECTOR
  249. CDTMA1    =$226            ;COUNT DOWN TIMER 1 JSR ADDRESS
  250. CDTMA2    =$228            ;COUNT DOWN TIMER 2 JSR ADDRESS
  251. CDTMF3    =$22A            ;COUNT DOWN TIMER 3 FLAG
  252. SRTIMR    =$22B            ;SOFTWARE REPEAT TIMER
  253. CDTMF4    =$22C            ;COUNT DOWN TIMER 4 FLAG
  254. INTEMP    =$22D            ;IAN'S TEMP (???)
  255. CDTMF5    =$22E            ;COUNT DOWN TIMER 5 FLAG
  256. SDMCTL    =$22F            ;SAVE DMACTL REGISTER
  257. SDLSTL    =$230            ;SAVE DISPLAY LIST (LOW)
  258. SDLSTH    =$231            ;SAVE DISPLAY LIST (HIGH)
  259. SSKCTL    =$232            ;SKCTL REGISTER RAM
  260.  
  261. LPENH    =$234            ;LIGHT PEN HORIZ VALUE
  262. LPENV    =$235            ;LIGHT PEN VERT VALUE
  263.                 ; ($236 - $239 SPARE)
  264. CDEVIC    =$23A            ;COMMAND FRAME BUFFER - DEVICE
  265. CCOMND    =$23B            ;COMMAND
  266. CAUX1    =$23C            ;COMMAND AUX BYTE 1
  267. CAUX2    =$23D            ;COMMAND AUX BYTE 2
  268. TEMP    =$23E            ;YES
  269. ERRFLG    =$23F            ;ERROR FLAG - AN